/* 
 * File:   BusinessBase.hpp
 * Author: Faisal
 *
 * Created on April 27, 2012, 8:39 PM
 *
 * Description:
 *		This base class provides an interface for all business objects. 
 *		Any business object that auto generation tool create, will be using this base class and implement the execute method.
 *
 */

#ifndef HBusinessBase_Common

#define HBusinessBase_Common

#include "Shared.hpp"
#include "ConnectionSourceType.hpp"
#include "..\Include\QueryType.hpp"
	
using Supetronix::PersistO::Common::ConnectionSourceType;
using Supetronix::PersistO::Common::QueryType;

namespace Supetronix
{
	namespace PersistO
	{
		namespace Common
		{
			class QueryModifierBase;

			class BusinessBase
			{

			public:
				/*
				*	Methods
				*/
				
				//virtual method that all business objects need to implement so Query Modifier can execute the modified query
				virtual BusinessBase* execute(QueryType qryType, const std::string& query, const QueryModifierBase* queryModifier) = 0;

				//class constructors & destructors
				//~BusinessBase() {  }
			};
		}
	}
}

#endif
